import axios from 'axios'
import {Message} from 'element-ui'
import store from '../store'

var instance = axios.create({
    timeout:5000
})

if (process.env.NODE_ENV === 'development') {
    // 开发环境
    instance.defaults.baseURL = 'http://39.100.95.147:1404';
    
} else {
    // 生产环境
    instance.defaults.baseURL = 'http://192.168.137.1/';
}

instance.defaults.headers.post['Content-Type'] = 'application/json';



// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    config.headers.token=store.state.LoginModule.token;    

    // 发送请求    
    return config;
  }, function (error) {
    // 请求错误
    return Promise.reject(error);
  });


// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 响应成功了，数据错误
    return response.status==200?Promise.resolve(response):Promise.reject(response);

  }, function (error) {
    // 响应失败
    const {response}=error;    
    if(response){
        errORHandle(response.status,response.data)
    }else{
        Message.error("网络请求中断") 
    }    
    return Promise.reject(error);
  });

  function errORHandle(status,other){
    switch(status){
        case 400:
            Message.error("请求参数有问题，服务器无法识别。") 
            break;
        case 403:
            Message.error("服务器拒绝响应。权限不足。") 
            break;
        case 404:
            Message.error("URL无效或者URL有效但是没有资源。")
            break;
        case 500:
            Message.error("服务器内部错误，未捕获。")
            break;
        default:
            Message.error(other)    
            break;     
    }
}

export default instance